home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMIBEST1.ADF / AmigaBasicStuff / Subscripts / SSScriptDemo (.txt) < prev    next >
AmigaBASIC Source Code  |  1987-07-22  |  21KB  |  1,013 lines

  1. '   Subscript & Superscript Demonstrator Mark I
  2.  
  3. '           Ivan C. Smith
  4. '           P O Box 226
  5. '        Chester, Nova Scotia   
  6. '        Canada       B0J 1J0
  7.           
  8. '      rev 9              18 Dec 1986
  9.  
  10. '  runs on 256 k Amiga
  11. '  requires 80 characters in screen line
  12.  
  13. CLEAR,28000 :'  needs 28 k of memory
  14. GOSUB SetUp
  15. GOSUB DefineConst
  16. GOSUB Formula1
  17. GOSUB Formula2
  18. GOSUB Formula3
  19. GOSUB Formula4
  20. GOSUB Formula5
  21. GOSUB Formula6
  22. GOSUB Formula7
  23. GOSUB Formula8
  24. GOSUB Formula9
  25. GOSUB Formula10
  26. GOSUB Formula11
  27. GOSUB Formula12
  28. GOSUB Formula13
  29. END
  30.  
  31. SetUp:
  32. LOCATE 3,25
  33. PRINT "Setup"
  34. '  first character in f1$ should be a space
  35. f1$ = " 0123456789+-=!@#$%&*()<>?/:;',."
  36. f2$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
  37. n = LEN(f1$) + LEN(f2$)
  38. DIM Access%(255) :'   access array
  39. DIM SScript%(19,n - 1) 
  40. count% = -1
  41. z$ = f1$
  42. GOSUB ScreenGet
  43. z$ = f2$
  44. GOSUB ScreenGet
  45. x = 10
  46. y = 50
  47. FOR j = 1 TO n :'   show result on screen   
  48.   x = x + 17
  49.   IF x > 600 THEN 
  50.     x = 10  
  51.     y = y + 12
  52.   END IF
  53.   PUT (x,y),SScript%(0,j - 1),PSET
  54. NEXT j
  55. FOR j = 1 TO 1000 : NEXT j :'  pause
  56. RETURN
  57.  
  58. DefineConst:
  59. q$ = CHR$(34)
  60. DIM plocate%(5,1) :'   pixel locations
  61. CharacterWidth% = 8
  62. RETURN
  63.  
  64. ScreenGet:
  65. IF z$ = "" THEN RETURN
  66. LOCATE 10,2
  67. COLOR 1,0
  68. PRINT z$
  69. z = LEN(z$)
  70. FOR j = 1 TO z 
  71.   count% = count% + 1 
  72.   GET (8 * j,72) - (8 * j + 7,79),SScript%(0,count%)
  73.   a = ASC(MID$(z$,j ,1))
  74.   Access%(a) = count%
  75. NEXT j
  76. LOCATE 10,2
  77. PRINT SPACE$(75)
  78. RETURN
  79.  
  80. FreMem:
  81. LOCATE 22,21
  82. PRINT  "Free memory in system ="FRE(-1);
  83. LOCATE 23,21
  84. PRINT  "Free memory in Basic  ="FRE(0);
  85. RETURN
  86.  
  87. TranslateFormula:
  88.  
  89. '  ypixel% = y coordinate of current baseline, in pixels
  90. '  yInc% = current position measured above or below current baseline
  91. '  y coordinate of current position (in pixels) = ypixel% + yInc%
  92. '  x coordinate of current position (in pixels) = xpixel%
  93.  
  94. IF Formula$ = "" THEN RETURN
  95. tra1:
  96.   zlen% = LEN(Formula$)
  97.   IF RIGHT$(Formula$,1) = "\" THEN
  98.     IF zlen% < 2 THEN Formula$ = "" : RETURN
  99.     Formula$ = LEFT$(Formula$,zlen% - 1)
  100.     GOTO tra1
  101.   END IF
  102. yInc% = 0
  103. j = 0
  104. WHILE j < zlen%
  105.   j = j + 1
  106.   y$ = MID$(Formula$,j,1)
  107.   IF y$ = "\" THEN
  108.     j = j + 1
  109.     y$ = MID$(Formula$,j,1)
  110.     IF y$ = "+" THEN yInc% = yInc% - 6
  111.     IF y$ = "-" THEN yInc% = yInc% + 6
  112.     IF y$ = "Z" THEN yInc% = 0
  113.     IF y$ = "." THEN GOSUB DotMult     
  114.     IF y$ = "A" THEN GOSUB ArrowRight
  115.     IF y$ = "B" THEN GOSUB ArrowRL
  116.     IF y$ = "C" THEN GOSUB ArrowLeft
  117.     IF y$ = "J" THEN
  118.       plocate%(1,0) = xpixel%
  119.       plocate%(1,1) = ypixel% + yInc%
  120.     END IF
  121.     IF y$ = "j" THEN
  122.       xpixel% = plocate%(1,0)
  123.       ypixel% = plocate%(1,1)
  124.       yInc% = 0
  125.     END IF
  126.     IF y$ = "K" THEN
  127.       plocate%(2,0) = xpixel%
  128.       plocate%(2,1) = ypixel% + yInc%
  129.     END IF
  130.     IF y$ = "k" THEN
  131.       xpixel% = plocate%(2,0)
  132.       ypixel% = plocate%(2,1)
  133.       yInc% = 0
  134.     END IF
  135.     IF y$ = "L" THEN
  136.       plocate%(3,0) = xpixel%
  137.       plocate%(3,1) = ypixel% + yInc%
  138.     END IF
  139.     IF y$ = "l" THEN
  140.       xpixel% = plocate%(3,0)
  141.       ypixel% = plocate%(3,1)
  142.       yInc% = 0
  143.     END IF
  144.     IF y$ = "M" THEN
  145.       plocate%(4,0) = xpixel%
  146.       plocate%(4,1) = ypixel% + yInc%
  147.     END IF
  148.     IF y$ = "m" THEN
  149.       xpixel% = plocate%(4,0)
  150.       ypixel% = plocate%(4,1)
  151.       yInc% = 0
  152.     END IF
  153.     IF y$ = "N" THEN
  154.       plocate%(5,0) = xpixel%
  155.       plocate%(5,1) = ypixel% + yInc%
  156.     END IF
  157.     IF y$ = "n" THEN
  158.       xpixel% = plocate%(5,0)
  159.       ypixel% = plocate%(5,1)
  160.       yInc% = 0
  161.     END IF
  162.     y = VAL(y$)
  163.       IF y > 0 THEN 
  164.         xpixel% = xpixel% - y
  165.         IF xpixel% < 1 THEN xpixel% = 1
  166.       END IF
  167.   ELSE
  168.     a = ASC(y$)
  169.     ac = Access%(a)
  170.     PUT (xpixel%,ypixel% + yInc%),SScript%(0,ac),PSET :'  print chr
  171.     IF yInc% = 0 OR FlagFraction% = 1 THEN   
  172.       xpixel% = xpixel% + CharacterWidth%   
  173.     ELSE
  174.       xpixel% = xpixel% + 9     
  175.     END IF
  176.   END IF
  177. WEND      
  178. RETURN
  179.  
  180. Fraction:
  181. IF Denominator$ = "" THEN RETURN
  182. IF Numerator$ = "" THEN RETURN
  183. FlagFraction% = 1
  184. xentry% = xpixel%
  185. yentry% = ypixel%
  186. counter% = 0
  187. z9 = LEN(Numerator$)
  188. FOR j = 1 TO z9
  189.   y$ = MID$(Numerator$,j,1)
  190.   IF y$ = "\" THEN counter% = counter% + 2 :'  count non-printing chr
  191. NEXT j
  192. znum% = z9 - counter% :'  znum% = nbr of printing characters in numerator
  193. IF znum% < 1 THEN znum% = 1
  194. counter% = 0
  195. z9 = LEN(Denominator$)
  196. FOR j = 1 TO z9
  197.   y$ = MID$(Denominator$,j,1)
  198.   IF y$ = "\" THEN counter% = counter% + 2 :'  count non-printing chr
  199. NEXT j
  200. zden% = z9 - counter% :'  zden% = nbr of printing characters in denominator
  201. IF zden% < 1 THEN zden% = 1
  202. zfra% = zden%
  203. IF znum% > zden% THEN zfra% = znum%
  204. IF zden% < znum% THEN
  205.   z = (znum% - zden%) \ 2
  206.   Denominator$ = SPACE$(z) + Denominator$ :'  centering of shorter denominator
  207. END IF
  208. IF znum% < zden% THEN
  209.   z = (zden% - znum%) \ 2
  210.   Numerator$ = SPACE$(z) + Numerator$ :'  centering of shorter numerator
  211. END IF
  212. Formula$ = Numerator$ :'   print numerator
  213. xpixel% = xentry% + 4
  214. ypixel% = yentry% - 5
  215. GOSUB TranslateFormula
  216. Formula$ = Denominator$ :'   print denominator
  217. xpixel% = xentry% + 4
  218. ypixel% = yentry% + 5
  219. GOSUB TranslateFormula
  220. x = xentry% + 6
  221. y = yentry% + 3
  222. LINE (x - 8,y) - (x + 9 * zfra%,y),1
  223. xpixel% = xentry% + 9 * (zfra% + 1)
  224. ypixel% = yentry%
  225. FlagFraction% = 0
  226. RETURN
  227.  
  228. ArrowRight:
  229. x = xpixel% + 36
  230. y = ypixel% + 3 - yInc%
  231. LINE (x - 21,y) - (x,y),1
  232. LINE (x - 8,y + 3) - (x,y),1
  233. LINE (x - 8,y - 3) - (x,y),1
  234. xpixel% = xpixel% + 50
  235. RETURN
  236.  
  237. ArrowRL:
  238. x = xpixel% + 36
  239. y = ypixel% + 3 - yInc%
  240. LINE (x - 21,y - 1) - (x,y - 1),1
  241. LINE (x - 13,y - 4) - (x - 21,y - 1),1
  242. LINE (x - 21,y + 1) - (x,y + 1),1
  243. LINE (x - 8,y + 4) - (x,y + 1),1
  244. xpixel% = xpixel% + 50
  245. RETURN
  246.  
  247. ArrowLeft:
  248. x = xpixel% + 15
  249. y = ypixel% + 3 - yInc%
  250. LINE (x,y) - (x + 21,y),1
  251. LINE (x + 8,y + 3) - (x,y),1
  252. LINE (x + 8,y - 3) - (x,y),1
  253. xpixel% = xpixel% + 50
  254. RETURN
  255.  
  256. ButtonBox:
  257. COLOR 1,0
  258. GOSUB FreMem
  259. FOR j = 1 TO 5000 : NEXT j
  260. IF FlagBox% = 2 THEN
  261.   LINE (40,162) - (227,180),1,bf
  262.   LINE (40,162) - (227,180),3,b
  263.   LINE (39,162) - (228,180),3,b
  264.   LINE (43,164) - (224,178),2,b
  265.   LINE (44,164) - (223,178),2,b
  266.   LOCATE 22,8
  267.   COLOR 2,1
  268.   PRINT "Show formula coding";
  269. END IF
  270. LINE (420,162) - (587,180),1,bf
  271. LINE (420,162) - (587,180),3,b
  272. LINE (419,162) - (588,180),3,b
  273. LINE (423,164) - (584,178),2,b
  274. LINE (424,164) - (583,178),2,b
  275. LOCATE 22,55
  276. COLOR 2,1
  277. PRINT "Go to next formula";
  278. LOCATE 19,1
  279. FlagChoice% = 0
  280. WHILE FlagChoice% = 0
  281.   IF MOUSE(0) < 0 THEN 
  282.     x = MOUSE(1)
  283.     y = MOUSE(2)
  284.     IF y > 161 AND y < 181 THEN 
  285.       IF x > 38 AND x < 229 AND FlagBox% = 2 THEN FlagChoice% = 1
  286.       IF x > 418 AND x < 589 THEN FlagChoice% = 2
  287.     END IF
  288.   END IF
  289. WEND
  290. LINE (35,160) - (590,184),0,bf :'  erase button boxes
  291. RETURN
  292.  
  293. DotMult:
  294. x = xpixel% 
  295. y = ypixel% - 2 - yInc%
  296. ac = Access%(46)
  297. PUT (x,y),SScript%(0,ac),PSET :'   print raised dot
  298. xpixel% = xpixel% + CharacterWidth%
  299. RETURN
  300.  
  301. Formula1:  
  302. title$ = "Subscripts Only"
  303. COLOR 1,0
  304. CLS
  305. z = 37 - LEN(title$) \ 2 
  306. LOCATE 1,z
  307. PRINT title$
  308. LOCATE 5,7
  309. PRINT "Plaster of Paris is used by doctors to make casts for broken bones."
  310. LOCATE 6,7
  311. PRINT "It is manufactured by heating gypsum:"
  312. CharacterWidth% = 9
  313. xchr% = 13 :'  x position in characters, for LOCATE
  314. ychr% = 9  :'  y position in characters, for LOCATE
  315. xpixel% = 8 * xchr% - 7 :'  x position in pixels
  316. ypixel% = 8 * ychr% - 8 :'  y position in pixels
  317. Formula$ = "2 CaSO\-4\Z\.2 H\-2\ZO\A(CaSO\-4\Z)\-2\Z\.H\-2\ZO  +  3 H\-2\ZO"
  318. GOSUB TranslateFormula
  319. LOCATE ychr% + 3,1
  320. PRINT TAB(17) "gypsum" TAB(33) "plaster of Paris"
  321. FlagBox% = 2
  322. GOSUB ButtonBox
  323. IF FlagChoice% = 1 THEN
  324.   LOCATE 17,6
  325.   COLOR 3,1
  326.   PRINT Formula$
  327.   FlagBox% = 1
  328.   GOSUB ButtonBox
  329. END IF
  330. RETURN
  331.  
  332. Formula2:  
  333. title$ = "Two-Digit Subscripts"
  334. COLOR 1,0
  335. CLS
  336. z = 37 - LEN(title$) \ 2 
  337. LOCATE 1,z
  338. PRINT title$
  339. LOCATE 4,3
  340. PRINT "When soap (sodium stearate) is dissolved in hard water (water containing"
  341. LOCATE 5,3
  342. PRINT "dissolved calcium and magnesium salts), it reacts with these salts to"
  343. LOCATE 6,3
  344. PRINT "form insoluble compounds, which, in turn, form the ring around the tub."
  345. LOCATE 7,3
  346. PRINT "An example of this kind of reaction follows:"
  347. CharacterWidth% = 9
  348. xchr% = 10 :'  x position in characters, for LOCATE
  349. ychr% = 11 :'  y position in characters, for LOCATE
  350. xpixel% = 8 * xchr% - 7 :'  x position in pixels
  351. ypixel% = 8 * ychr% - 8 :'  y position in pixels
  352. f1$ = "2 C\-17\ZH\-35\ZCOONa  +  CaCl\-2\Z\A(C\-17\ZH\-35\ZCOO)"
  353. Formula$ = f1$ + "Ca  +  2 NaCl"
  354. GOSUB TranslateFormula
  355. LOCATE ychr% + 3,1
  356. PRINT TAB(14) "soap" TAB(44) "insoluble"
  357. FlagBox% = 2
  358. GOSUB ButtonBox
  359. IF FlagChoice% = 1 THEN
  360.   LOCATE 17,6
  361.   COLOR 3,1
  362.   PRINT Formula$
  363.   FlagBox% = 1
  364.   GOSUB ButtonBox
  365. END IF
  366. RETURN
  367.  
  368. Formula3:  
  369. title$ = "Superscript & Subscript & Fractional Coefficient"
  370. COLOR 1,0
  371. CLS
  372. z = 37 - LEN(title$) \ 2
  373. LOCATE 1,z
  374. PRINT title$
  375. LOCATE 5,12
  376. PRINT "The following formula describes the distance travelled"
  377. LOCATE 6,12
  378. PRINT "by an object moving under constant acceleration:"
  379. CharacterWidth% = 9
  380. xchr% = 20 :'  x position in characters, for LOCATE
  381. ychr% = 11 :'  y position in characters, for LOCATE
  382. xpixel% = 8 * xchr% - 7 :'  x position in pixels
  383. ypixel% = 8 * ychr% - 8 :'  y position in pixels
  384. f1$ = "d  =  v\-1\Zt  +  "
  385. Formula$ = f1$
  386. GOSUB TranslateFormula
  387. Numerator$ = "1"
  388. Denominator$ = "2"
  389. GOSUB Fraction
  390. f2$ = "at\+2\Z"
  391. Formula$ = f2$
  392. GOSUB TranslateFormula
  393. FlagBox% = 2
  394. GOSUB ButtonBox
  395. IF FlagChoice% = 1 THEN
  396.   LOCATE 17,20
  397.   COLOR 3,1
  398.   PRINT f1$;
  399.   COLOR 1,0
  400.   PRINT SPACE$(7);
  401.   COLOR 3,1
  402.   PRINT f2$
  403.   FlagBox% = 1
  404.   GOSUB ButtonBox
  405. END IF
  406. RETURN
  407.  
  408. Formula4: 
  409. title$ = "Scientific Notation and Units"
  410. COLOR 1,0
  411. CLS
  412. z = 37 - LEN(title$) \ 2
  413. LOCATE 1,z
  414. PRINT title$
  415. f1$ = "D\-2\ZO"
  416. f2$ = "20\+o\ZC"
  417. f3$ = "1.108 x 10\+3\Z kg\.m\+-3\Z,"
  418. f4$ = "H\-2\ZO"
  419. f5$ = "9.97 x 10\+2\Z kg\.m\+-3\Z."
  420. CharacterWidth% = 8
  421. xchr% = 4 :'  x position in characters, for LOCATE
  422. ychr% = 5 :'  y position in characters, for LOCATE
  423. xpixel% = 8 * xchr% - 7 :'  x position in pixels
  424. ypixel% = 8 * ychr% - 8 :'  y position in pixels
  425. Formula$ = "The density of "+f1$+" (heavy water) at "+f2$+" is "+f3$
  426. GOSUB TranslateFormula
  427. xchr% = 4
  428. ychr% = 7
  429. xpixel% = 8 * xchr% - 7
  430. ypixel% = 8 * ychr% - 8
  431. Formula$ = "which compares to the "+f2$+" density of "+f4$+" of "+f5$
  432. GOSUB TranslateFormula
  433. LOCATE 9,4
  434. PRINT "That is, "+q$+"heavy water"+q$+" is just that, it is 11% heavier than ordinary"
  435. LOCATE 11,4
  436. PRINT "water."
  437. FlagBox% = 2
  438. GOSUB ButtonBox
  439. IF FlagChoice% = 1 THEN
  440.   COLOR 3,1
  441.   LOCATE 15,10
  442.   PRINT f1$
  443.   LOCATE 15,30
  444.   PRINT f2$
  445.   LOCATE 17,10
  446.   PRINT f3$
  447.   LOCATE 15,50
  448.   PRINT f4$
  449.   LOCATE 17,45
  450.   PRINT f5$
  451.   FlagBox% = 1
  452.   GOSUB ButtonBox
  453. END IF
  454. RETURN
  455.  
  456. Formula5: 
  457. title$ = "Superscript Concurrent With Subscript"
  458. COLOR 1,0
  459. CLS
  460. z = 37 - LEN(title$) \ 2
  461. LOCATE 1,z
  462. PRINT title$
  463. LOCATE 3,3
  464. PRINT "   Sulphuric acid is an acid which can transfer two hydrogen ions to two"
  465. LOCATE 4,3
  466. PRINT "water molecules.  The first hydrogen ion separates from the sulphuric"
  467. LOCATE 5,3
  468. PRINT "acid molecule easily:"
  469. CharacterWidth% = 9
  470. xchr% = 23
  471. ychr% = 7
  472. xpixel% = 8 * xchr% - 7
  473. ypixel% = 8 * ychr% - 8
  474. f1$ = "H\-2\ZSO\-4\Z  +  H\-2\ZO\AH\-3\ZO\++\Z  +  HSO\-4\Z\+\9-\Z"
  475. Formula$ = f1$
  476. GOSUB TranslateFormula
  477. CharacterWidth% = 8
  478. f2$ = "HSO\+-\Z\-\94\Z "
  479. xchr% = 3
  480. ychr% = 10
  481. xpixel% = 8 * xchr% - 7
  482. ypixel% = 8 * ychr% - 8
  483. Formula$ = "   The second hydrogen ion can also leave the "+f2$
  484. Formula$ = Formula$ + "ion, but it has more"
  485. GOSUB TranslateFormula
  486. PRINT ""
  487. LOCATE 11,3
  488. PRINT "difficulty in leaving than did the first:"
  489. CharacterWidth% = 9
  490. xchr% = 23
  491. ychr% = 14
  492. LOCATE ychr%,1
  493. xpixel% = 8 * xchr% - 7
  494. ypixel% = 8 * ychr% - 8
  495. f3$ = "HSO\+-\Z\-\94\Z  +  H\-2\ZO\AH\-3\ZO\++\Z  +  SO\-4\Z\+\9--\Z"
  496. Formula$ = f3$
  497. GOSUB TranslateFormula
  498. FlagBox% = 2
  499. GOSUB ButtonBox
  500. IF FlagChoice% = 1 THEN
  501.   COLOR 3,1
  502.   LOCATE 18,3
  503.   PRINT f1$
  504.   LOCATE 16,3
  505.   PRINT f2$
  506.   LOCATE 20,3
  507.   PRINT f3$
  508.   FlagBox% = 1
  509.   GOSUB ButtonBox
  510. END IF
  511. RETURN
  512.  
  513. Formula6: 
  514. title$ = "Superscript Concurrent With Subscript"
  515. COLOR 1,0
  516. CLS
  517. z = 37 - LEN(title$) \ 2
  518. LOCATE 1,z
  519. PRINT title$
  520. LOCATE 5,10
  521. PRINT "The Cockroft-Walton experiment, first performed in 1932,"
  522. LOCATE 6,10
  523. PRINT "bombards a target of lithium with high-speed protons.  "
  524. LOCATE 7,10
  525. PRINT "This produces high-speed alpha particles by the following"
  526. LOCATE 8,10
  527. PRINT "nuclear reaction.  (This is called a "+q$+"nuclear reaction"+q$
  528. LOCATE 9,10
  529. PRINT "because it takes place in the nucleus of the atom.)"
  530. CharacterWidth% = 9
  531. xchr% = 17
  532. ychr% = 13
  533. xpixel% = 8 * xchr% - 7
  534. ypixel% = 8 * ychr% - 8
  535. f1$ = "\+7\Z\-\93\ZLi  +  \+1\Z\-\91\ZH\A\+4\Z\-\92\ZHe"
  536. Formula$ = f1$ + "  +  \+4\Z\-\92\ZHe  +  energy"
  537. GOSUB TranslateFormula
  538. FlagBox% = 2
  539. GOSUB ButtonBox
  540. IF FlagChoice% = 1 THEN
  541.   LOCATE 17,1
  542.   COLOR 3,1
  543.   PRINT Formula$
  544.   FlagBox% = 1
  545.   GOSUB ButtonBox
  546. END IF
  547. RETURN
  548.  
  549. Formula7: 
  550. title$ = "Superscript Concurrent With Subscript, Multiple Digits"
  551. COLOR 1,0
  552. CLS
  553. z = 37 - LEN(title$) \ 2
  554. LOCATE 1,z
  555. PRINT title$
  556. LOCATE 3,4
  557. PRINT "A "+q$+"breeder reactor"+q$+" makes Plutonium from Uranium-238 by this process."
  558. CharacterWidth% = 9
  559. xchr% = 4
  560. ychr% = 6
  561. xpixel% = 8 * xchr% - 7
  562. ypixel% = 8 * ychr% - 8
  563. f1$ = "\+238\Z\-\9\992\ZU  +  \+1\Z\-\90\Zn\A\+239\Z\-\9\992\ZU"
  564. Formula$ = "First    " + f1$
  565. GOSUB TranslateFormula
  566. FOR j = 1 TO 3500 : NEXT j :'  pause
  567. xchr% = 5
  568. ychr% = 10
  569. xpixel% = 8 * xchr% - 7
  570. ypixel% = 8 * ychr% - 8
  571. f2$ = "\+239\Z\-\9\992\ZU\A\+239\Z\-\9\993\ZNp  +   \+0\Z\-\9\9-1\Ze"
  572. Formula$ = "then    " + f2$
  573. GOSUB TranslateFormula
  574. FOR j = 1 TO 3500 : NEXT j :'  pause
  575. xchr% = 2
  576. ychr% = 14
  577. xpixel% = 8 * xchr% - 7
  578. ypixel% = 8 * ychr% - 8
  579. f3$ = "\+239\Z\-\9\993\ZNp\A\+239\Z\-\9\994\ZPu  +   \+0\Z\-\9\9-1\Ze"
  580. Formula$ = "finally    " + f3$
  581. GOSUB TranslateFormula
  582. FOR j = 1 TO 3500 : NEXT j :'  pause
  583. LOCATE 6,52
  584. PRINT "Notes:"
  585. xchr% = 49
  586. ychr% = 8
  587. xpixel% = 8 * xchr% - 7
  588. ypixel% = 8 * ychr% - 8
  589. Formula$ = "\+1\Z\-\90\Zn"
  590. GOSUB TranslateFormula
  591. LOCATE 8,54
  592. PRINT "represents a neutron"
  593. xchr% = 48
  594. ychr% = 12
  595. xpixel% = 8 * xchr% - 7
  596. ypixel% = 8 * ychr% - 8
  597. Formula$ = "\--1\Z\+\90\Ze"
  598. GOSUB TranslateFormula
  599. LOCATE 12,54
  600. PRINT "represents an electron"
  601. FlagBox% = 2
  602. GOSUB ButtonBox
  603. IF FlagChoice% = 1 THEN
  604.   COLOR 3,1
  605.   LOCATE 17,9
  606.   PRINT f1$
  607.   LOCATE 18,9
  608.   PRINT f2$
  609.   LOCATE 19,9
  610.   PRINT f3$
  611.   FlagBox% = 1
  612.   GOSUB ButtonBox
  613. END IF
  614. RETURN
  615.  
  616. Formula8:  
  617. title$ = "Fraction With Superscripts & Subscripts"
  618. COLOR 1,0
  619. CLS
  620. z = 38 - LEN(title$) \ 2 
  621. LOCATE 1,z
  622. PRINT title$
  623. LOCATE 4,8
  624. PRINT "Newton's Law of Gravity:"
  625. LOCATE 4,47
  626. PRINT "Coulomb's Law:"
  627. CharacterWidth% = 9
  628. xchr% = 8
  629. ychr% = 7
  630. xpixel% = 8 * xchr% - 7
  631. ypixel% = 8 * ychr% - 8
  632. f1$ = "F\-gravity\Z  =  G "
  633. Formula$ = f1$
  634. GOSUB TranslateFormula
  635. f2$ = "\+m\-1\+m\-2"
  636. f3$ = "\-d\+2"
  637. Numerator$ = f2$
  638. Denominator$ = f3$
  639. GOSUB Fraction
  640. xchr% = 40
  641. ychr% = 7
  642. xpixel% = 8 * xchr% - 7
  643. ypixel% = 8 * ychr% - 8
  644. f4$ = "F\-electrostatic\Z  =  k "
  645. Formula$ = f4$
  646. GOSUB TranslateFormula
  647. f5$ = "\+Q\-1\+Q\-2"
  648. f6$ = "\-d\+2"
  649. Numerator$ = f5$
  650. Denominator$ = f6$
  651. GOSUB Fraction
  652. LOCATE 11,5
  653. PRINT "G  is called Newton's Universal Gravitational Constant."
  654. LOCATE 15,5
  655. PRINT "k  is called Coulomb' Constant."
  656. xchr% = 5
  657. ychr% = 13
  658. xpixel% = 8 * xchr% - 7
  659. ypixel% = 8 * ychr% - 8
  660. Formula$ = "G  =  6.673 x 10\+-11\Z N\.m\+2\Z\.kg\+-2\Z"
  661. GOSUB TranslateFormula
  662. xchr% = 42
  663. ychr% = 15
  664. xpixel% = 8 * xchr% - 7
  665. ypixel% = 8 * ychr% - 8
  666. Formula$ = "k  =  8.987 x 10\+9\Z N\.m\+2\Z\.C\+-2\Z"
  667. GOSUB TranslateFormula
  668. FlagBox% = 2
  669. GOSUB ButtonBox
  670. IF FlagChoice% = 1 THEN
  671.   COLOR 3,1
  672.   LOCATE 18,2
  673.   PRINT f1$
  674.   LOCATE 17,21
  675.   PRINT f2$
  676.   LOCATE 19,21
  677.   PRINT f3$
  678.   LOCATE 18,35
  679.   PRINT f4$
  680.   LOCATE 17,60
  681.   PRINT f5$
  682.   LOCATE 19,60
  683.   PRINT f6$
  684.  
  685.   FlagBox% = 1
  686.   GOSUB ButtonBox
  687. END IF
  688. RETURN
  689.  
  690. Formula9:  
  691. title$ = "Fraction With Superscripted & Subscripted Numerator & Denominator"
  692. COLOR 1,0
  693. CLS
  694. z = 38 - LEN(title$) \ 2 
  695. LOCATE 1,z
  696. PRINT title$
  697. LOCATE 5,11
  698. PRINT "   In descriptions of Gauss's test for the convergence"
  699. LOCATE 6,11
  700. PRINT "of infinite series, an often-used example is stated in"
  701. LOCATE 7,11
  702. PRINT "the form of a test of this ratio:"
  703. CharacterWidth% = 9
  704. xchr% = 20
  705. ychr% = 11
  706. xpixel% = 8 * xchr% - 7
  707. ypixel% = 8 * ychr% - 8
  708. f1$ = "\+u\-n"
  709. f2$ = "u\-n+1"
  710. Numerator$ = f1$
  711. Denominator$ = f2$
  712. GOSUB Fraction
  713. Formula$ = "  =  "
  714. GOSUB TranslateFormula
  715. f3$ = "\+n\+2\- + a\-1\+n + a\-0"
  716. f4$ = "\-n\+2\- + b\-1\+n + b\-0"
  717. Numerator$ = f3$
  718. Denominator$ = f4$
  719. GOSUB Fraction
  720. FlagBox% = 2
  721. GOSUB ButtonBox
  722. IF FlagChoice% = 1 THEN
  723.   COLOR 3,1
  724.   LOCATE 17,20
  725.   PRINT f1$
  726.   LOCATE 17,30
  727.   PRINT f3$
  728.   LOCATE 19,20
  729.   PRINT f2$
  730.   LOCATE 19,30
  731.   PRINT f4$
  732.   FlagBox% = 1
  733.   GOSUB ButtonBox
  734. END IF
  735. RETURN
  736.  
  737. Formula10:  
  738. title$ = "Fraction With Fractional Denominator"
  739. COLOR 1,0
  740. CLS
  741. z = 38 - LEN(title$) \ 2 
  742. LOCATE 1,z
  743. PRINT title$
  744. LOCATE 5,11
  745. CharacterWidth% = 8
  746. xchr% = 4
  747. ychr% = 5
  748. xpixel% = 8 * xchr% - 7
  749. ypixel% = 8 * ychr% - 8
  750. f1$ = "v  =  v\-1\Z  +  v\-2\Z"
  751. Formula$ = "The Newtonian velocity addition law:    " + f1$
  752. GOSUB TranslateFormula
  753. xchr% = 4
  754. ychr% = 11
  755. xpixel% = 8 * xchr% - 7
  756. ypixel% = 8 * ychr% - 8
  757. Formula$ = "The Einstein velocity addition law:    v  =  "
  758. GOSUB TranslateFormula
  759. f2$ = "\+v\-1\+  +  v\-2"
  760. f3$ = "\-\-1  +  \J    "
  761. Numerator$ = f2$
  762. Denominator$ = f3$
  763. GOSUB Fraction
  764. Formula$ = "\j"
  765. GOSUB TranslateFormula :'  position denominator fraction
  766. f4$ = "\+v\-1\+v\-2"
  767. f5$ = "\-c\+2"
  768. Numerator$ = f4$
  769. Denominator$ = f5$
  770. GOSUB Fraction
  771. FlagBox% = 2
  772. GOSUB ButtonBox
  773. IF FlagChoice% = 1 THEN
  774.   COLOR 3,1
  775.   LOCATE 8,5
  776.   PRINT f1$
  777.   LOCATE 17,40
  778.   PRINT f2$
  779.   LOCATE 19,24
  780.   PRINT f3$
  781.   LOCATE 19,43
  782.   PRINT f4$
  783.   LOCATE 19,60
  784.   PRINT f5$
  785.   FlagBox% = 1
  786.   GOSUB ButtonBox
  787. END IF
  788. RETURN
  789.  
  790. Formula11:  
  791. title$ = "Time Units:  Conversion of Compound to Decimal Form"
  792. COLOR 1,0
  793. CLS
  794. z = 38 - LEN(title$) \ 2 
  795. LOCATE 1,z
  796. PRINT title$
  797. LOCATE 3,2
  798. PRINT "As everyone knows, the Earth does not turn on its axis once every 24 h."
  799. LOCATE 4,2
  800. PRINT "It actually takes 23 h 56 min 04.09054 s to turn once on its axis."
  801. CharacterWidth% = 9
  802. xchr% = 3
  803. ychr% = 9
  804. xpixel% = 8 * xchr% - 7
  805. ypixel% = 8 * ychr% - 8
  806. f1$ = "T\-rot\Z  =  23\+h\Z56\+m\Z04.\+\9s\Z09054"
  807. f1$ = f1$ + "  =  \J                     \K"
  808. Formula$ = f1$
  809. GOSUB TranslateFormula
  810. Formula$ = "\j"
  811. GOSUB TranslateFormula :'  position fraction at J location
  812. f2$ = "\+23 + \L              "
  813. f3$ = "24"
  814. Numerator$ = f2$
  815. Denominator$ = f3$
  816. GOSUB Fraction
  817. Formula$ = "\l"
  818. GOSUB TranslateFormula :'  position fraction at L location
  819. f4$ = "\+56 + \M        "
  820. f5$ = "60"
  821. Numerator$ = f4$
  822. Denominator$ = f5$
  823. GOSUB Fraction
  824. Formula$ = "\m"
  825. GOSUB TranslateFormula :'  position fraction at M location
  826. f6$ = "4.09054"
  827. Numerator$ = f6$
  828. Denominator$ = f5$
  829. GOSUB Fraction
  830. Formula$ = "\k"
  831. GOSUB TranslateFormula :'  position at K location
  832. f7$ = "days"
  833. Formula$ = f7$
  834. GOSUB TranslateFormula
  835. LOCATE 11,10
  836. PRINT "=  0.997 269 5664 days"
  837. FlagBox% = 2
  838. GOSUB ButtonBox
  839. IF FlagChoice% = 1 THEN
  840.   COLOR 3,1
  841.   LOCATE 17,3
  842.   PRINT f1$
  843.   LOCATE 15,30
  844.   PRINT f2$
  845.   LOCATE 19,45
  846.   PRINT f3$
  847.   LOCATE 13,40
  848.   PRINT f4$
  849.   LOCATE 19,57
  850.   PRINT f5$
  851.   LOCATE 11,50
  852.   PRINT f6$
  853.   LOCATE 19,70
  854.   PRINT f7$
  855.   FlagBox% = 1
  856.   GOSUB ButtonBox
  857. END IF
  858. RETURN
  859.  
  860. Formula12:  
  861. title$ = "von Weizsacker's Formula"
  862. COLOR 1,0
  863. CLS
  864. z = 38 - LEN(title$) \ 2 
  865. LOCATE 1,z
  866. PRINT title$
  867. LOCATE 3,7
  868. PRINT "In a 1938 paper on "+q$+"Element Transformation Inside Stars"+q$+","
  869. LOCATE 4,4
  870. PRINT "published in Physikalische Zeitschrift, Carl Friedrich von Weizsacker"
  871. LOCATE 5,4
  872. PRINT "uses this formula, which deals with temperature distribution:"
  873. CharacterWidth% = 9
  874. xchr% = 23
  875. ychr% = 9
  876. xpixel% = 8 * xchr% - 7
  877. ypixel% = 8 * ychr% - 8
  878. f1$ = "kT  =  "
  879. Formula$ = f1$
  880. GOSUB TranslateFormula
  881. f2$ = "\+E\-A\+ - E\-A-1"
  882. f3$ = "\-\-\-ln \J                   "
  883. Numerator$ = f2$
  884. Denominator$ = f3$
  885. GOSUB Fraction
  886. Formula$ = "\j"
  887. GOSUB TranslateFormula :'  position fraction at J location
  888. f4$ = "\+n\-A-2\+ n\-A\-  \K"
  889. f5$ = "\-n\+2\-\9\-A-1\Z"
  890. Numerator$ = f4$
  891. Denominator$ = f5$
  892. GOSUB Fraction
  893. Formula$ = "\k \. "
  894. GOSUB TranslateFormula :'  position fraction at K location
  895. f6$ = "\+G\+2\-\-\9A-1"
  896. f7$ = "\-G\-A-2\+ G\-A"
  897. Numerator$ = f6$
  898. Denominator$ = f7$
  899. GOSUB Fraction
  900. FlagBox% = 2
  901. GOSUB ButtonBox
  902. IF FlagChoice% = 1 THEN
  903.   COLOR 3,1
  904.   LOCATE 18,13
  905.   PRINT f1$
  906.   LOCATE 16,39
  907.   PRINT f2$
  908.   LOCATE 19,20
  909.   PRINT f3$
  910.   LOCATE 18,34
  911.   PRINT f4$
  912.   LOCATE 20,34
  913.   PRINT f5$
  914.   LOCATE 18,60
  915.   PRINT f6$
  916.   LOCATE 20,60
  917.   PRINT f7$
  918.   FlagBox% = 1
  919.   GOSUB ButtonBox
  920. END IF
  921. RETURN
  922.  
  923. Formula13:  
  924. title$ = "Superscripted Subscript"
  925. COLOR 1,0
  926. CLS
  927. z = 38 - LEN(title$) \ 2 
  928. LOCATE 1,z
  929. PRINT title$
  930. LOCATE 3,11
  931. PRINT q$+"Exchange reactions"+q$+" are chemical reactions in which the"
  932. LOCATE 4,8
  933. PRINT "reagents and the products differ only in isotopic composition."
  934. LOCATE 5,8
  935. PRINT "An example is this exchange reaction:"
  936. CharacterWidth% = 9
  937. xchr% = 13
  938. ychr% = 7
  939. xpixel% = 8 * xchr% - 7
  940. ypixel% = 8 * ychr% - 8
  941. f1$ = "C \+16\ZO\-2\Z  +  2 H\-2\Z\+18\ZO\B C \+18\ZO\-2\Z  +  2 H\-2\Z\+16\ZO"
  942. Formula$ = f1$
  943. GOSUB TranslateFormula
  944. LOCATE 9,8
  945. PRINT "which has an equilibrium constant  K  given by"
  946. xchr% = 2
  947. ychr% = 14
  948. xpixel% = 8 * xchr% - 7
  949. ypixel% = 8 * ychr% - 8
  950. Formula$ = "K  =  "
  951. GOSUB TranslateFormula
  952. f2$ = "\+\+\+P\-\-(C \+18\-O\-2\+)\+\+ x P\+2\9\-\-\-(H\-2\+\+16\-O)"
  953. f3$ = "\-P\-\-(C \+16\-O\-2\+)\+\+ x P\+2\9\-\-\-(H\-2\+\+18\-O)"
  954. Numerator$ = f2$
  955. Denominator$ = f3$
  956. GOSUB Fraction
  957. LOCATE 11,40
  958. PRINT "where"
  959. xchr% = 43
  960. ychr% = 12
  961. xpixel% = 8 * xchr% - 7
  962. ypixel% = 8 * ychr% - 8
  963. f4$ = "P\-\-(C \+18\-O\-2\+)\Z = the pressure"
  964. Formula$ = f4$
  965. GOSUB TranslateFormula
  966. xchr% = 57
  967. ychr% = 13
  968. xpixel% = 8 * xchr% - 7
  969. ypixel% = 8 * ychr% - 8
  970. f5$ = "exerted by  C \+18\ZO\-2\Z"
  971. Formula$ = f5$
  972. GOSUB TranslateFormula
  973. LOCATE 14,57
  974. PRINT "at equilibrium,"
  975. LOCATE 15,40
  976. PRINT "and"
  977. xchr% = 43
  978. ychr% = 16
  979. xpixel% = 8 * xchr% - 7
  980. ypixel% = 8 * ychr% - 8
  981. f4$ = "P\-\-(H\-2\+\+18\-O)\Z = the pressure"
  982. Formula$ = f4$
  983. GOSUB TranslateFormula
  984. xchr% = 58
  985. ychr% = 17
  986. xpixel% = 8 * xchr% - 7
  987. ypixel% = 8 * ychr% - 8
  988. f5$ = "exerted by  H\-2\+\+18\-O"
  989. Formula$ = f5$
  990. GOSUB TranslateFormula
  991. LOCATE 18,55
  992. PRINT "at equilibrium,"
  993. LOCATE 19,40
  994. PRINT "etc."
  995. FlagBox% = 2
  996. GOSUB ButtonBox
  997. IF FlagChoice% = 1 THEN
  998.   COLOR 3,1
  999.   LOCATE 9,1
  1000.   PRINT f1$
  1001.   LOCATE 19,1
  1002.   PRINT f2$
  1003.   LOCATE 20,1
  1004.   PRINT f3$
  1005.   FlagBox% = 1
  1006.   GOSUB ButtonBox
  1007. END IF
  1008. RETURN
  1009.  
  1010.  
  1011.  
  1012.  
  1013.